package com.qf.web.servlet;


import com.qf.pojo.PageBean;
import com.qf.pojo.TbGoods;
import com.qf.service.GoodsService;
import com.qf.service.impl.GoodsServiceImpl;
import com.qf.utils.StringConstans;
import com.qf.utils.StringUtils;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Create by 周志豪 on 2022/8/18 19:29
 *
 * @authoe 周志豪
 * @veision 1.0
 * //TODO  想好了再去做
 * @since 1.0
 */

public class ProductServlet {
    private GoodsService goodsService = new GoodsServiceImpl();

    public String show(HttpServletRequest request, HttpServletResponse response) {
        //要先知道查询的分类是哪个,我们要求对方必须传递一个id参数过来,这个参数代表的是分类的id
        String typeId = request.getParameter("id");
        //获取期望得到第几页数据
        String currentPage = request.getParameter("currentPage");
        //如果没有传递页码,默认是第一页
        if (StringUtils.isEmpty(currentPage)) {
            currentPage = "1";
        }

        //必须传递id
        if (StringUtils.isEmpty(typeId)) {
            //代表没有传递分类id.我们就跳转到首页或者是错误页面
            //我们现在的流程是重定向到首页
            return StringConstans.REDIRECT + "/index.jsp";
        }
        //根据id查询商品的数据
        int curPage = Integer.parseInt(currentPage);
        //封装有最终结果的pagebean
        PageBean<TbGoods> pageBean = new PageBean<>();
        pageBean.setCurrentPage(curPage);
        //按照分页查询数据
        goodsService.findByType(Long.parseLong(typeId),pageBean);
        //设置查询的结果
        request.setAttribute("pageBean",pageBean);
        return StringConstans.FORWARD + "/goodsList.jsp";

    }


    public String detail(HttpServletRequest request, HttpServletResponse response) {
        //查询某个商品的详情,第一件事情先获取到要查看的商品的id
        //我们要求客户端必须传递一个叫id的参数,代表商品的id
        String id = request.getParameter("id");
        if (StringUtils.isEmpty(id)) {
            return StringConstans.REDIRECT + "/index.jsp";
        }

        try {
            //将id转成数字,因为数据库主键是数字
            long goodsId = Long.parseLong(id);
            TbGoods tbGoods = goodsService.findById(goodsId);
            if (tbGoods == null) {
                //没有数据跳转到首页
                throw new RuntimeException("商品不存在");
            }
            //如果有数据保存到作用域
            request.setAttribute("product", tbGoods);
            return StringConstans.FORWARD + "/goodsDetail.jsp";
        }catch (Exception e){
           e.printStackTrace();
            return StringConstans.REDIRECT + "/index.jsp";
        }


    }

}
